#ifndef QDIVAWINDOW_H
#define QDIVAWINDOW_H

#include <QMainWindow>
#include <QMap>
#include "ui_QDivaWindow.h"


class DIVA_VM;

class QDivaWindow : public QMainWindow
{
	Q_OBJECT

public:
	enum ACTION_DEBUGGER{CONTINUE, NEXT, STEP};
	enum ACTION_DIVA_APP{CHANGE_BACKGROUND, ANIMATION, LAYOUT, NEW_VM};
	enum ACTION_CAMERA{UP, LEFT, DOWN, RIGHT, ZOOM_IN, ZOOM_OUT};
	QDivaWindow(QWidget *parent = 0);
	~QDivaWindow();
	const static QSize& TOOL_BUTTON_SIZE(){return *( new QSize(24, 24) );}

public slots:
	void popMDSManagerDialog();
	void popExplorBotMangerDialog();
	void showLoggerWindow();
	void showExplorebotsWindow();
	void showStatWindow();
	void rightClickMenu(DIVA_VM* vm);

private:
	Ui::QDivaWindow ui;
	QMap<ACTION_DEBUGGER, QAction*> _debuggerActions;
	QMap<ACTION_DIVA_APP, QAction*> _divaAppActions;
	QMap<ACTION_CAMERA, QAction*> _cameraActions;
	QAction *_loggerWindow;
	QAction *_statWindow;
	QAction *_ExplorestatWindow;
	void init();
	void connectSlots(); // connect signals and slots
	void setUpDebuggerActions(); // initialize toolbar actions
	void setUpDivaAppActions();
	void setUpCameraActions();
	void setUpToolBar(); // initialize toolbar, should be called after setUpToolBarActions()
	void setStyle(); // set css style from diva_style.css
};

#endif // QDIVAWINDOW_H
